package com.UnionPayCenter.account.manager;

import com.UnionPayCenter.account.entity.PayBill;
import com.UnionPayCenter.account.enums.PayStatusEnum;
import com.github.pagehelper.Page;

/**
 * 支付流水
 */
public interface PayBillManager {

    /**
     * 保存支付流水
     *
     * @param payBill 支付流水
     * @return 支付流水号
     */
    String savePayBill(PayBill payBill);

    /**
     * 自定义条件查询支付流水
     *
     * @param payBill  支付流水查询条件
     * @param page     页数
     * @param pageSize 每页记录数
     * @return 支付流水
     */
    Page<PayBill> getPayBillByCondition(PayBill payBill, Integer page, Integer pageSize);

    /**
     * 根据用户Id查询支付流水
     *
     * @param userId   用户Id(不同的商铺之间的用户体系不通)
     * @param state    支付状态
     * @param page     页数
     * @param pageSize 每页记录数
     * @return 支付流水
     */
    Page<PayBill> getPayBillByUserId(Integer userId, PayStatusEnum state, Integer page, Integer pageSize);

    /**
     * 根据店铺Id查询支付流水
     *
     * @param shopId   店铺Id
     * @param state    支付状态
     * @param page     页数
     * @param pageSize 每页记录数
     * @return 支付流水
     */
    Page<PayBill> getPayBillByShopId(Integer shopId, PayStatusEnum state, Integer page, Integer pageSize);

}
